%!Tex Program = xelatex
%\documentclass[a4paper]{article}
\documentclass[a4paper]{ctexart}
\usepackage{xltxtra}
\usepackage{listings}
\usepackage{float}
\usepackage{graphicx} % 导入graphicx宏包

%\setmainfont[Mapping=tex-text]{AR PL UMing CN:style=Light}
%\setmainfont[Mapping=tex-text]{AR PL UKai CN:style=Book}
%\setmainfont[Mapping=tex-text]{WenQuanYi Zen Hei:style=Regular}
%\setmainfont[Mapping=tex-text]{WenQuanYi Zen Hei Sharp:style=Regular}
%\setmainfont[Mapping=tex-text]{AR PL KaitiM GB:style=Regular} 
%\setmainfont[Mapping=tex-text]{AR PL SungtiL GB:style=Regular} 
%\setmainfont[Mapping=tex-text]{WenQuanYi Zen Hei Mono:style=Regular} 

\usepackage{geometry}
\geometry{a4paper,scale=0.75}
\title{插值程序}
\author{周川迪}
\date{\today}
\begin{document}
\maketitle

c程序interp.c演示了插值和样条函数的用法。它计算了一个10个点的数据集$(x_i, y_i)$的三次样条插值，其中 $x_i = i + \sin(i)/2$，$y_i = i + \cos(i^2)$，其中 $i$ 的取值范围为 0 到 9。

以下是这个例子的描述
\begin{enumerate}

    \item 程序使用了一些必要的库文件，包括\texttt{stdlib.h}、\texttt{stdio.h}、\texttt{math.h}、\texttt{gsl/gsl\_errno.h} 和 \texttt{gsl/gsl\_spline.h}。
    
    \item 在 \texttt{main} 函数中，定义了一些变量和数组来存储数据。然后，通过使用循环来计算和打印出数据集中的每个点的 $x$ 和 $y$ 值。
    
    \item 初始化一个 \texttt{gsl\_interp\_accel} 和一个 \texttt{gsl\_spline} 对象，分别用于加速插值计算和进行样条插值。将数据集传递给 \texttt{gsl\_spline\_init} 函数，以初始化样条插值对象。

    \item 通过循环计算插值点的 $y$ 值，并将结果打印出来。在每次迭代中，使用 \texttt{gsl\_spline\_eval} 函数计算给定 $x_i$ 值对应的 $y_i$ 值。

    \item 释放申请的内存，并返回 0。
    
\end{enumerate}

生成的图像如下：
\begin{figure}
    \centering
    \includegraphics{interp.eps} % 插入EPS图像
\end{figure}

\end{document}